/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import logicaNegocio.Configuracion;
import persistencia.agente.Cama;
import persistencia.agente.DetallePedidoProducto;
import persistencia.agente.DetallePedidoServicio;
import persistencia.agente.Dia;
import persistencia.agente.Empleado;
import persistencia.agente.EstadoFichaInternacion;
import persistencia.agente.EstadoPedido;
import persistencia.agente.FichaInternacion;
import persistencia.agente.Habitacion;
import persistencia.agente.HistoricoPrecio;
import persistencia.agente.Paciente;
import persistencia.agente.Pedido;
import persistencia.agente.Producto;
import persistencia.agente.Promocion;
import persistencia.agente.Servicio;

/**
 *
 * @author Sebastian
 */
public class FabricaIntermediario {
    private static FabricaIntermediario instancia;
    
    private FabricaIntermediario(){}
    
    public static synchronized FabricaIntermediario getInstancia(){
        if(instancia == null){
            instancia = new FabricaIntermediario();
        }
        return instancia;
    }
    
    public Intermediario obtenerIntermediario(Class clase){
        Intermediario inter= null;
        
        if(clase.equals(Cama.class)){
            inter = new IntermediarioCama();            
        }else if(clase.equals(DetallePedidoProducto.class)){
            inter = new IntermediarioDetallePedidoProducto();            
        }else if(clase.equals(DetallePedidoServicio.class)){
            inter = new IntermediarioDetallePedidoServicio();            
        }else if(clase.equals(Dia.class)){
            inter = new IntermediarioDia();            
        }else if(clase.equals(Empleado.class)){
            inter = new IntermediarioEmpleado();            
        }else if(clase.equals(EstadoFichaInternacion.class)){
            inter = new IntermediarioEstadoFichaInternacion();            
        }else if(clase.equals(EstadoPedido.class)){
            inter = new IntermediarioEstadoPedido();            
        }else if(clase.equals(FichaInternacion.class)){
            inter = new IntermediarioFichaInternacion();            
        }else if(clase.equals(Habitacion.class)){
            inter = new IntermediarioHabitacion();            
        }else if(clase.equals(HistoricoPrecio.class)){
            inter = new IntermediarioHistoricoPrecio();            
        }else if(clase.equals(Paciente.class)){
            inter = new IntermediarioPaciente();            
        }else if(clase.equals(Pedido.class)){
            inter = new IntermediarioPedido();            
        }else if(clase.equals(Producto.class)){
            inter = new IntermediarioProducto();            
        }else if(clase.equals(Promocion.class)){
            inter = new IntermediarioPromocion();            
        }else if(clase.equals(Servicio.class)){
            inter = new IntermediarioServicio();            
        }else if(clase.equals(Configuracion.class)){
            inter = new IntermediarioConfiguracion();            
        }
            
        return inter;
    }
}
